<?php
class atendimentomodel extends CI_Model
{   public function buscarAtendimentoData($dataInicio,$dataFim)
    {   //$this->db->where('status_participante','P');
        //$this->db->select('nome,dataNascimento,foto,telefone,id_cliente');
        //$this->db->select("DATE_FORMAT(dataNascimento, '%d/%m/%Y') as dataNascimento", FALSE);
        //$this->db->order_by('nome','ASC');
        //return $this->db->get('CLIENTE');   
        
        
      $this->db->select('*');
      $this->db->select("DATE_FORMAT(dataAtendimento, '%d/%m/%Y') as dataAtendimento", FALSE);
      $this->db->select("DATE_FORMAT(dataProxConsulta, '%Y/%m/%d') as data", FALSE);
      //$this->db->select("DATE_FORMAT(dataAtendimento, '%d/%m/%Y') as dataAtendimento", FALSE);
      $this->db->from('CLIENTE');
      $this->db->join('ATENDIMENTO', 'CLIENTE.id_cliente = ATENDIMENTO.cliente');
      //$this->db->join('CATEGORIA', 'PAGINA.categoria = CATEGORIA.codigo_categoria');
      $this->db->where('ATENDIMENTO.dataProxConsulta >=', $dataInicio);
      $this->db->where('ATENDIMENTO.dataProxConsulta <=', $dataFim); 
      //$this->db->where('ATENDIMENTO.dataAtendimento', $data);
      //$this->db->limit(20);
      //$this->db->group_by("palavra_chave");		
      return $this->db->get();	
    }
    public function buscarOrcamento($id)
    {   $this->db->where('numeroAtendimento',$id);
        $this->db->where('orcamentoConfirmado !=','N' );
        return $this->db->get('ORCAMENTO');
    }
    public function buscarReceituario($id)
    {   $this->db->where('numeroAtendimento',$id);
        $this->db->where('receituarioConfirmado !=','N' );
        return $this->db->get('RECEITUARIO');
    }
    public function buscarAtendimentoPorCliente($idCliente)
    {   //$this->db->where('status_participante','P');
        //$this->db->select('nome,dataNascimento,foto,telefone,id_cliente');
        //$this->db->select("DATE_FORMAT(dataNascimento, '%d/%m/%Y') as dataNascimento", FALSE);
        //$this->db->order_by('nome','ASC');
        //return $this->db->get('CLIENTE');   
      $this->db->select('*');
      //
      $this->db->select("DATE_FORMAT(dataAtendimento, '%d/%m/%Y') as dataAtendimento", FALSE);
      //$this->db->select("DATE_FORMAT(dataProxConsulta, '%d/%m/%Y') as dataProxConsulta", FALSE);
      //$this->db->select("DATE_FORMAT(dataProxConsulta, '%Y/%m/%d') as data", FALSE);
      
      $this->db->from('CLIENTE');
      $this->db->join('ATENDIMENTO', 'CLIENTE.id_cliente = ATENDIMENTO.cliente');
      //$this->db->join('CATEGORIA', 'PAGINA.categoria = CATEGORIA.codigo_categoria');
      $this->db->where('ATENDIMENTO.cliente', $idCliente);
      return $this->db->get();	
    }
    public function buscarAtendimentoPorId($idAtendimento,$data)
    {  $this->db->where('id_atendimento',$idAtendimento);
       return $this->db->get("ATENDIMENTO");
    }

    public function gravarAtendimento($dados)
    {   if($dados != NULL)
        {   $this->db->insert('ATENDIMENTO',$dados);
            $this->session->set_flashdata('cadastrook',"ATENDIMENTO CADASTRADO COM SUCESSO !!!");
            redirect('atendimentocontroller/adicionaratendimento/'.$dados['cliente']);        
        }
    }
    public function confirmarAtendimento($idAtendimento,$data)
    {   
        $ultima = $this->buscarUltimaPosicaoAtendimento($data)->row();
        $this->db->where('id_atendimento',$idAtendimento);
        $this->db->update('ATENDIMENTO', array('situacao' => 'F','dataAtendimento'=> date('Y-m-d'),'horaChegada'=>date('H:i:s'),'posicaoAtendimento'=>$ultima->posicaoAtendimento + 1 ));                     
        redirect('calendariocontroller/hoje');
    }
    public function cancelarAtendimento($idAtendimento,$data)
    {   //$ultima = $this->buscarUltimaPosicaoAtendimento($data)->row();
        $this->db->where('id_atendimento',$idAtendimento);
        $this->db->update('ATENDIMENTO', array('situacao' => 'C','dataAtendimento'=> date('Y-m-d'),'horaChegada'=>date('H:i:s')));                     
        redirect('calendariocontroller/hoje');
    }
   public function remarcarAtendimento($idAtendimento,$data)
   {   //$ultima = $this->buscarUltimaPosicaoAtendimento($data)->row();
    $this->db->where('id_atendimento',$idAtendimento);
    $this->db->update('ATENDIMENTO', array('situacao' => 'R','dataAtendimento'=> date('Y-m-d'),'horaChegada'=>date('H:i:s')));                     
    }
    
    public function buscarUltimaPosicaoAtendimento($data)
    {   $this->db->where('situacao', 'F');
        $this->db->where('dataProxConsulta',$data);
        $this->db->order_by('posicaoAtendimento','DESC');
        return $this->db->get("ATENDIMENTO");
    }
    public function buscarAcaoPorCliente($idCliente,$tabela)
    {   $this->db->select('*');
        $this->db->select("DATE_FORMAT(data, '%d/%m/%Y') as data", FALSE);        
        $this->db->where('cliente',$idCliente);
        return $this->db->get($tabela);        
    }
    public function gravarProntuario($dados)
    {   if($dados != NULL)
        {   $this->db->trans_begin(); 
            $this->db->insert('PRONTUARIO',$dados);
            $this->marcarAtendimento($dados['numeroAtendimento']);
            if($this->db->trans_status()=== FALSE)
            {   $this->db->trans_rollback();
                 $this->session->set_flashdata('cadastrook',"Erro, tente mais tarde !!!");            }
            else
            {   $this->db->trans_commit();
               
                $this->session->set_flashdata('cadastrook',"PRONTUÁRIO CADASTRADO COM SUCESSO !!!");
            }
            
            redirect('calendariocontroller/hoje');        
        }
        
    }
    public function gravarAcao($dados,$tabela)
    {   if($dados != NULL)
        {   
            $this->db->trans_begin();                    
            $this->db->insert($tabela,$dados);
            
            $this->marcarAcao($dados['numeroAtendimento'],$tabela);
            if($this->db->trans_status()=== FALSE)
            {   $this->db->trans_rollback();                
                $this->session->set_flashdata('cadastrook',"Erro, tente mais tarde !!!");
            }
            else
            {   $this->db->trans_commit();
                $this->session->set_flashdata('cadastrook',"OPERAÇÃO EFETUADA COM SUCESSO !!!");
            }
         redirect('calendariocontroller/hoje');
        }
    }
    
    public function marcarAtendimento($idAtendimento)
    {        $this->db->where('id_atendimento',$idAtendimento);
             $this->db->update('ATENDIMENTO', array('atendido' => 'S'));
    }     
    public function marcarAcao($idAtendimento,$tabela)
    {        $this->db->where('numeroAtendimento',$idAtendimento);
             $this->db->update($tabela, array(''.$tabela.'Confirmado' => 'S'));
    }     
      
        
        
}
